<?php

namespace Modules\Admin\Http\Controllers;

use App\Admin;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Routing\Controller;
use Modules\Admin\Http\Requests\AddAdminUserRequest;
use Spatie\Permission\Models\Role;
class AdminUserController extends Controller
{
    /**
     * Display a listing of the resource.
     * @return Response
     */
    public function index()
    {

        //获取后台所有用户数据
        $admins = Admin::where('name','!=','qwer')->paginate(6);
        //加载用户管理首页模板
        return view('admin::adminuser.index',compact('admins'));
    }

    /**
     * Show the form for creating a new resource.
     * @return Response
     */
    public function create()
    {
        return view('admin::create');
    }

    /**
     * Store a newly created resource in storage.
     * @param  Request $request
     * @return Response
     */
    public function store(AddAdminUserRequest $request)
    {
       //获取表单的所有数据
       $post=$request->all();
      // 将密码进行加密处理
       $post['password']=bcrypt($post['password']);
       // 将处理后的数据存储在数据库中
       Admin::create($post);
       // 设置闪存并提示
        session()->flash('success','用户添加成功');
         //跳回指定的页面
        return redirect()->route('adminuser.index');
    }

    /**
     * Show the specified resource.
     * @return Response
     */
    public function show()
    {
        return view('admin::show');
    }

    /**
     * Show the form for editing the specified resource.
     * @return Response
     */
    public function edit()
    {
        return view('admin::edit');
    }

    /**
     * Update the specified resource in storage.
     * @param  Request $request
     * @return Response
     */
    public function update(AddAdminUserRequest $request,$id )
    {
        //根据id获取当前用户数据
         $admin =Admin::find($id);
         //修改每条数据
         $admin->name=$request->input('name');
         $admin->nickname=$request->input('nickname');
         //判断用户是否填写了密码
        if ($request->input('password')){
            //如果填写了密码才会给他修改
            $admin->password = bcrypt($request->input('password'));
        }
        $admin->save();
        //设置闪存信息并返回
        session()->flash('success','用户修改成功');
        return redirect()->route('adminuser.index');
    }

    /**
     * Remove the specified resource from storage.
     * @return Response
     */
    public function destroy($id)
    {
        Admin::destroy($id);
        //设置闪存信息并跳转页面
        session()->flash('success','删除数据成功');
        return back();
    }
    public function showRole($adminid){
        //通过$adminid找到对应的后台用户数据
        $admin=Admin::find($adminid);
        //获取当前所有的角色数据(不让站长数据显示出来)
        $roles=Role::where('name','!=',config('hd_module.webmaster'))->get();
        return view('admin::adminuser.showRole',compact('admin','roles'));
    }
    public function assignRole(Request $request,$adminid){
        //判断如果没有选择给用户返回信息
        if(!$request->input('name')){
            session()->flash('danger','最少设置一个权限或者返回不设置');
            return back();
        }
        //使用手册中的方法将角色数据同步给当前操作的用户
        //先通过$adminid找到对应要添加角色的用户
         $admin=Admin::find($adminid);
        $admin->syncRoles($request->input('name'));
        //设置闪存并返回
        session()->flash('success','角色设置成功');
        return back();
    }
}
